// 封装axios

import axios from "axios"
// 封装拦截器
// 请求拦截器：携带jwt
// 响应拦截器：存储jwt、拆解config判断请求的状态
axios.interceptors.request.use((cfg) => {
  let jwt = sessionStorage.getItem("jwt")
  // 如果存在jwt携带
  if (jwt) {
    cfg.headers.Authorization = jwt
  }
  return cfg
})

axios.interceptors.response.use((res) => {
  // 保存请求返回的jwt值
  let jwt = res.data.context ? res.data.context.jwt : null  
  if (jwt) {
    sessionStorage.setItem("jwt", jwt)
  }
  let acl = res.data.context ? res.data.context.acl : null
  if (acl) {
    sessionStorage.setItem("acl", JSON.stringify(acl))
  }
  return res
})
// 导出axios
export default axios